Learning Objectives

After completing this lesson, you’ll be able to:

How to Build an Automation?

Automations are built using a drag-and-drop interface similar to FME Workbench. Your Automations can consist of the following components:

Manual Trigger iconManual Trigger. Allows the automation to be run on demand rather than in response to a schedule or event. Extremely useful for testing as it allows sample JSON messages to be passed downstream.

Trigger iconTriggers. A Trigger listens for and receives messages from an external client or from within FME Server. Every automation begins with a Trigger.

Action iconActions. Process messages from a trigger with an FME workspace or other tool hosted on the Server.

External action iconExternal Actions. Sends a message to an external client or another process in FME Server. What happens afterward is no longer part of this Automation.

External Action iconSplit-Merge Block. Combines messages from multiple workspace actions. The message includes content from workspaces that run a single job, or multiple jobs, depending on the input message and workspace behavior.

Annotation iconAnnotations. Add annotations to the automation canvas just like FME Workbench which can be stand-alone or attached to components.

Bookmark iconBookmarks. Organizes your workflow by grouping and separating components.

Note

For a full description of triggers and actions available, please visit the Automations documentation.

Let's look at the different components of an Automation in more detail.

Clients

A client is a user or system that sends or receives a message to/from FME Server. The client may be a physical person or may just be a component in a computer system. Either way, the majority of the time, a client is not a core part of FME Server, rather someone or something that interacts with it. There are two trigger protocol exceptions to this (Schedules and System Events) whereby FME Server is also the client sending the message.

Client diagram

For example, a database update might cause a trigger to send a notification to FME Server, in which case the database system is the client. However, a client could also be a person who, for example, triggers a notification by sending an email to FME Server.

Likewise, FME Server can send a notification for another client system. Alternatively, this client can also be a real person, who might receive a notification in the form of an email.

Trigger

A trigger is an FME Server component that receives incoming notifications from a client.

Trigger diagram

To set up a trigger in FME Server, a workspace author (or administrator) must build a new Automation. You can create an Automation in the FME Server Web Interface on the Automations > Build Automation page:

Automations canvas

Action

An action is an FME Server component that sends outgoing notifications to a client.

Actions diagram

To send a notification in FME Server, a workspace author (or administrator) must first create an Automation that contains a trigger, the output of this node is then connected to the action - just like how you connect transformers in FME Workbench.

Adding an External Action

Comparable to the FME Workbench canvas, Automations are constructed in a user-friendly drag-and-drop interface. Triggers and actions are displayed on the canvas as nodes identifiable by their different color. Input and output ports are used to create connections that will pass messages from the trigger to the associated action. The user must configure a series of parameters for the Automation to succeed depending on the protocol.

Protocols

A protocol is a system of data exchange between FME Server and a client.

We know that FME sends and receives messages. Protocols are the method by which these messages are sent and received. Each Trigger and Action is defined using a particular communication protocol.

To trigger an incoming message by email – for example – you would create an Automation using an Email - SMTP Trigger. To send a notification to a Java Message Service, you would create an Automation that contains a JMS Message Action.

There are many different protocols available in FME Server; some of them are only for use as a Trigger, others are only available as Actions, and some of them can be used with both types.

This table lists the different Trigger and Action protocols and the following pages go into greater detail on some of the most commonly used types.

Protocol Description Trigger Action
Amazon S3 Monitoring activity in an AWS S3 bucket/Communication to Amazon’s Simple Storage Service Y Y
Amazon SNS Communication with Amazon’s Simple Notification Service Y Y
Amazon SQS Communication with Amazon’s Simple Queue Service Y Y
Azure Event Grid Communication with Microsoft Azure Events Y Y
Directory Watch Monitoring activity in a Directory Y  
Dropbox Monitoring activity in a Dropbox folder/Communication of a notification (file) to the Dropbox web service Y Y
Email (IMAP) Receive email messages from an IMAP Server Y  
Email (SMTP) FME Server itself receives email messages/Communication via an email server Y Y
Filter Test incoming messages for the presence of a specified string   Y
FME Server Topic Receive/Send messages to a Topic to initiate workflow processes Y Y
FME Workspace Run an FME Desktop Workspace published to FME Server   Y
FME Dynamic Workspace Run an FME Desktop Workspace published to FME Server, with the repository and workspace name coming from output keys in the Automation   Y
FTP Monitor activity/upload a file to an FTP Site Y Y
HTTP Request Post HTTP requests to the specified URL   Y
JMS Communication with a Java Message Service Y Y
Log Write Event/Automation details to a log   Y
Merge Combine messages before proceeding downstream in an Automation   Y
SFTP Communication with an SFTP site   Y
Schedule Complete workflow tasks at specific times in the future Y  
System Events Communication with FME Server systems Y  
UDP Communication via a User Datagram Protocol port Y  
WebSocket Communication via a WebSocket channel Y Y
Webhook Receive messages sent as HTTP Post requests from another application Y  

Protocols are pre-defined components in the FME Server architecture and do not need to be defined in the web interface.

However, a number of fields are made available to configure when an Automation is created.

For example, here are the parameters for a Resource or Network Directory (updated) Trigger:

Resource or Network Directory Details pane

You must set these parameters set when the Automation is created as they are needed for FME to watch and receive notifications about this Directory. If you don't configure these parameters, the Automation will not behave as anticipated when you enable it.

Note

Learn more about specific protocols in the FME Server Automation documentation.